這是將布林表示示改寫成等等價表示式的方式:
如果記不起來,簡單記法是「把 not 分配到各項,在反轉 not/or 」
利用這定律讓布林更有可讀性:
if (!(file_exists && !is_protected)) Error("Sorry,could not read file.");
可以改寫成:
if (!(file_exists || is_protected)) Error("Sorry,could not read file.");
assert((|(bucket = Findbucket(key))) || !bucket->IsOccupied());
即使是一行程式碼, 許多程式設計師都得稍做思考才能理解他的行為,改成下列程式會容易理解的多:
bucket = FindBucket(key);
if (bucket != NULL) assert(!bucket->IsOccupied());
雖然有2行程式碼,行為也完全相同,但容易理解的多。
重要概念
注意寫法「很酷」的程式碼---經常會對後續使用使用程式的人造成困擾